import numpy as np
import pandas as pd
import originpro as op

# 采样频率

fs = 1000

# 信号时长

T = 1

# 时间点

t = np.linspace(0, T, T * fs, endpoint=False)

# 生成示例信号

signal = np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 120 * t)

# 进行 FFT 变换

fft_result = np.fft.fft(signal)

# 计算频率轴

N = len(signal)
frequencies = np.fft.fftfreq(N, 1/fs)

# 计算幅度谱

magnitude = np.abs(fft_result)

# 只取单边谱（正频率部分）

frequencies = frequencies[:N//2]
magnitude = magnitude[:N//2]

# 创建一个新的 OriginPro 工作表

wks = op.new_sheet()

# 将频率数据添加到工作表的第一列

wks.from_list(0, frequencies, 'Frequency')

# 将幅度数据添加到工作表的第二列

wks.from_list(1, magnitude, 'Magnitude')

# 创建一个新的图形窗口

graph = op.new_graph()

# 获取图形窗口的图层

layer = graph[0]

# 在图层上绘制频率 - 幅度图

layer.add_plot(wks, colx=0, coly=1)

# 设置图形标题

layer.title = 'Frequency - Magnitude Plot'

# 设置 x 轴标签

layer.x_label = 'Frequency (Hz)'

# 设置 y 轴标签

layer.y_label = 'Magnitude'

graph.save_fig('fft_frequency_magnitude.png')  # <span className="order">300</span> 是图片的分辨率（dpi）
